/**
 * Saver.java ##copyright## This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by the Free Software
 * Foundation; either version 2.1 of the License, or (at your option) any later version. This
 * library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
 * General Public License for more details. You should have received a copy of the GNU Lesser
 * General Public License along with this library; if not, write to the Free Software Foundation,
 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 * 
 * @author ##author.name##
 * @modified ##prject.date##
 * @version ##project.version##
 */
package fiveagon.saver;

/**
 * Easy Saving. This is a consistent interface for saving an image of the sketch window and
 * recording high-quality output.
 * 
 * @example BasicSaver
 */
public interface Saver {
  /**
   * Saves an image of the sketch window.
   */
  void save();

  /**
   * Starts the High-Quality recording. Marks <em>when</em> to start recording, the desire or
   * request to start recording.
   */
  void saveRecord();

  /**
   * Marks <em>where</em> recording should begin. In general, this should be at the beginning of
   * your main <code>draw()</code> loop.
   */
  void beginRecord();

  /**
   * Marks <em>where</em> recording should stop. In general, this should be at the end of your main
   * <code>draw()</code> loop.
   */
  void endRecord();
}
